package com.ting.test.algorithms.KMP;


/**
 * Created by 雷霆 on 2020/11/27.
 * <p>
 * Description：
 */
public class KMP {

    public static void main(String[] args) {
        Integer dd = getMatchIndex("sdafafs", "afs");
    }

    private static Integer getMatchIndex(String str, String match) {
//        if (StringUtils.isEmpty(str) || StringUtils.isEmpty(match)) {
//            return null;
//        }
        char[] strArr = str.toCharArray();
        char[] matchArr = match.toCharArray();
        int[] next = getNext(matchArr);
        int x = 0;
        int y = 0;
        while (x < strArr.length && y < matchArr.length) {
            if (strArr[x] == matchArr[y]) {
                x++;
                y++;
            } else if (next[y] != -1) {
                y = next[y];
            } else {
                //当next[y]==-1时，表示match也到了0位置，此时x之前的元素都无法匹配，str需要往下走一个元素
                x++;
            }
        }
        return y == matchArr.length ? x - y : -1;
    }

    private static int[] getNext(char[] chars) {
        return new int[0];
    }
}
